# Author    :Dun_Hz
# Time      :2024/3/17 14:19
# 每个礼物有自己的价值和重量，一次只能带走一定重量，找一次带走的最大价值
input_a = int(input('箱数：'))
input_b = int(input('一次重量：'))
list_c = []
list_z = []
for i in range(1, input_a+1):
    input_c = int(input('第'+str(i)+'箱的总价值：'))
    input_d = int(input('第' + str(i) + '箱的重量：'))
    avg = round(input_c/input_d,1)
    list_c.append(avg)          # 每种礼物的单位重量的价值
    list_z.append([input_d,avg,0])  #第一个表示每种礼物的总重量，第二个表示单位重量的价值，第三个0表示未被取走

list_c.sort(reverse=True)           #降序排列

sum = [0, 0]    #第一个表示取走的重量，第二个是超出前的备份
num = 0
ji = 0
for i in range(len(list_c)):
    for k in range(len(list_z)):
        if ji==0:       #是否超出承重量，未超出记为0
            if (list_c[i]==list_z[k][1]) and (list_z[k][2] ==0):
                sum[1] = sum[0] # 备份
                sum[0] = sum[0] +list_z[k][0]   #取走的重量
                v= list_z[k][0]
                if sum[0] > input_b:
                    ji ==1
                    t = list_z[k][0]
                    while True:
                        z = sum[1]+t
                        if z<= input_b:
                            break
                        t = t-1
                    v = t
                    sum[0]=sum[1]
                    sum[0] = sum[0]+v
                num = list_c[i]*v + num
                list_z[k][2]    = 1
print('能带走的最大价值:',num)

